package com.asura.framework.inst;

import java.util.List;
import java.util.Map;

import com.asura.framework.rulemodel.RuleInstOutModel;

/**
 * 规则定义引擎.
 * 
 * @author a123
 *
 */
public interface RuleInstEngine {

	/**
	 * 根据规则名及订单ID获取特定的规则定义.
	 * 
	 * @param ruleName
	 *            规则名称.
	 * @param bizId
	 *            业务ID.
	 * @return
	 */
	RuleInstOutModel getRuleInstByInstance( String ruleName, String bizId );

	/**
	 * 根据规则组及订单ID获取特定组下的所有规则定义.
	 * 
	 * @param group
	 *            规则组
	 * @param bizId
	 *            订单ID
	 * @return
	 */
	List< RuleInstOutModel > getRuleInstByGroup( String group, String bizId );

	/**
	 * 根据规则组及订单ID获取特定组下的所有规则定义.
	 * 
	 * @param groups
	 *            规则组
	 * @param bizId
	 *            订单ID
	 * @return
	 */
	Map< String, List< RuleInstOutModel > > getRuleInstByGroup( String[ ] groups, String bizId );
}
